#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QSerialPort>
#include <QSerialPortInfo>
#include <QPushButton>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QDebug>
#include <QMessageBox>  // 提示框
#include <QLabel>       // 状态显示
#include <QSpinBox>
#include <QTimer>
#include <cmath>

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

    void sendCommand(const QString &cmd, const QString &action);
    void connectPort(void);
    //分析运动是否合理，返回flag
    int kinematics_analysis(float x, float y, float z, float Alpha);
    void actionGroupPut(int x,int y,int z,int time);
    void actionGroupGet(int x,int y,int z,int time);
    QString buildCommand(const int servo_pwm[], int time, int claw_pwm);
    //判断能不能运动，能就动，否不动
    void kinematics_move(float x, float y, float z);
    void BYxyPut(int ChessX,int ChessY,int time);
    void BYxyPutPro(int ChessX,int ChessY,int time);

private:

    QSerialPort *serial;

    int servo_pwm[4];

    QString commandClaw;
};
#endif // WIDGET_H
